#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#define N 5
// 
int main()
{
  char* p = NULL;
  *p = 100;
  //int ret = 0;
  //char* p = (char*)malloc(1000*1000*1000*4);
  //if (p == NULL)
  //{
  //  printf("malloc error, %d: %s\n", errno, strerror(errno));
  //}
  //else
  //{
  //  printf("malloc success\n");
  //}
  //return ret;
}


//const char* errString[] = {
//  "success",
//  "error 1",
//  "error 2",
//  "error 3",
//  "error 4",
//  "error 5"
//};
//
//int main()
//{
//
//  //printf("模拟一个逻辑的实现\n");
//  int i = 0; 
//  for (i = 0; i < 200; i++)
//  {
//    printf("%d: %s\n", i, strerror(i));
//  }
//  
//  return 0;
//}

//void runChild()
//{
//  int cnt = 10;
//  while (cnt)
//  {
//    printf("I am child: %d, ppid: %d\n", getpid(), getppid());
//    sleep(1);
//    cnt--;
//  }
//}
//
//int main()
//{
//  int i = 0;
//  for (i = 0; i < N; i++)
//  {
//    pid_t id = fork();
//    if (id == 0)
//    {
//      runChild();
//      exit(0);
//    }
//  }
//
//  sleep(1000);
//
//  //printf("pid: %d before!\n", getpid());
//  //fork();
//  //printf("pid: %d after!\n", getpid());
//  return 0; // 为什么main函数总是会return 0？ 1？ 2？，这个东西给谁了，为什么要返回这个值
//
//}
